import axios from 'axios'

const ajax = axios.create({
  timeout: 30000,
})

export default {
  install(Vue) {
    Vue.prototype.$ajax = function (config) {
      if (config.data && this.$store) {
        config.data._csrf = this.$store.state._csrf
      }

      ajax.interceptors.request.use(
        config =>
          // 在发送请求之前做些什么
          config,
        error =>
          // 对请求错误做些什么
          Promise.reject(error)
        ,
      )
      // 响应拦截器
      ajax.interceptors.response.use(
        response =>
          // 对响应数据做点什么
          response,
        error =>
          // 对响应错误做点什么
          Promise.reject(error)
        ,
      )
      return ajax(config)
    }
  },
}
